package com.example.demo_mysql_mybatisplus.util.grouped;

import lombok.Data;

import java.io.Serializable;
import java.util.LinkedList;
import java.util.List;

@Data
public class GroupedPo<T>  implements Serializable {

    private static final long serialVersionUID = 1L;

    /** 分组字段 */
    private String groupField;

    /** 分组字段的值 */
    private Object groupKey;

    /** 分组内总数，为null则取list的size */
    private Long total;

    /** 分组后的 有序数据集 */
    private List<T> datas;

    public GroupedPo( String groupField, Object groupKey ) {
        this.groupField = groupField ;
        this.groupKey = groupKey ;
        this.datas = new LinkedList<>();
    }

    public Long getTotal() {
        if( datas ==null ){
            return null;
        }else if(total==null ){
            return Long.valueOf(datas.size());
        }else{
            return total;
        }
    }
}

